The widespread availability of the global and public computer network called the Internet has spawned a huge explosion of uses for many purposes by many people. The Internet is now used for communicating all sorts of media signals including video, telephony, music, file sharing, advertising, social networking, and myriads of other things. The Internet is often depicted in diagrams and drawings as a “cloud,” because of the idea that a computing capability or web site is “out there somewhere,” and not necessarily nearby to the actual computer user. The actual location is often not knowable to the average Internet user.
Prior to the explosion of Internet usage, the most common person-to-person electronic communication for decades was the plain old telephone system (POTS). Now, even telephone communications are migrating towards digital implementations on the Internet. Telephone calls on the Internet is often called “voice over Internet protocol” (VoIP) telephony, because of the usage of packet communications using the known Internet protocol (IP) and its variations such as TCP/IP, UDP, and the like.
Telephone service is often implemented for businesses and other entities by use of equipment known as private branch exchanges (PBX). A PBX is typically an electronic device that connects individual telephone users with handsets to other telephone users. Such connections can be within the business (for intra-PBX communications), or with other telephony users outside the business (for extra-PBX communications), typically via the known public switched telephone network (PSTN) operated by the known telephone company system operators (as of 2008) such as AT&T, Verizon, Qwest Corporation, Windstream Communications, and also mobile/cellular service providers such as AT&T, Verizon, Sprint, T-Mobile, etc. Such entities are also often called telcos.
The growing capability and presence of Internet-based computing, communication, and data storage has led to the creation of distributed computing facilities all over the world. Internet-based computing need not be centrally located, and with the advent of multi-core computer chips and “virtualization” of computers, a computing or communication or data storage function can now be dispersed among a number of different physical facilities, often miles apart, but usually invisible to the end user. Virtualization of a computer resource means that the resource need not have a single physical location for its implementation, on a single physical computer, but can be split into different pieces or parts, run on different computers, or within different processes in the same computer, perhaps in different physical locations. The rise of virtualization has led to a phenomenon known as cloud computing, which means that a computer or communication or data storage resource is merely “out there in the cloud.” In other words, the resource has no readily identifiable location as far as the user is concerned, but the resource is provided as a service on behalf of the user, by some kind of service provider, such an Internet service provider (ISP).
Some PBX and call routing equipment is now being made with software components that run on a computer, instead of with discrete electronics. One example is shown in U.S. Pat. No. 7,035,935 to Voois et al., “Communications Service Provider Network.” This patent describes a system for routing of telephony data in a private branch exchange (PBX) arrangement adapted to route IP telephony data. The routing arrangement includes a call-control application having an object-oriented programming (OOP) telephony interface and programmed to control the routing of calls. A device-control application is adapted to provide telephony communication signals for the routed calls and to interface between the call-control application and a plurality of telephony devices. Configuration information for the call-control application is provided via a configuration manager. In this manner, voice and data networks are allegedly effectively fused, purportedly allowing the easy integration of computer telephony applications.
There is, however, a need for more flexible and robust implementation of various forms of telephony devices within PBX equipment and for use by telephony service providers. Many telephony functions are complex, and require the coordination of different functions, sometimes as ancillary or “child” functions, and sometimes as handed off from one device to another. For example, a PBX provides various related telephony functions such as voice announcement signals, an answering machine announcement specific to a particular end user, music on hold signals, filtering of signals, conferencing capability, follow me capability to route calls to handsets then mobile devices then answering machines, connecting to an outside PSTN line, and the like. Functions such as filtering, conferencing, and music on hold are ancillary functions that are provided during the processing of a particular call. But functions such as follow me capability, connecting to an outside POTS line, and connecting to answering machine are essentially handoff type functions. Even telephone handsets have basic functions such as last number redial, memory dialing, conferencing selection, call hold, transfer call to another extension, and the like. Various telephony capabilities and functions can be collected or assembled into groups or “kits” of related functionality, but each group or kit requires complex circuitry or programming to implement.
Given the rise of ubiquitous computing, communication, and data storage facilities in the Internet cloud, and the growing popularity of VoIP for telephony purposes on the Internet, there is a need for a more robust and easily configurable arrangement for providing telephony functions for PBX and telephone service provider equipment—without dedicated electronics—and using the widespread availability of computing resources in the cloud.
The present inventions provide such a robust, expandable, and easily configurable solution, and an architecture, for providing PBX and other complex telephony functions of telephony service providers. The advantages of the inventions result, in part, by the discovery by the inventors that a number of complex telephony functions have certain aspects that are common to many users within a distributed system. By leveraging that commonality of function with reusable and universally available software components, customized by configuration parameters that are specific to particular users, service providers, PBX operators, and others, a new architecture is provided that allows provision of reusable, readily configurable telephony devices that can be assembled into kits or other collections. Further, through the extensive use of markup languages, the inventions provide for an easy and quick way for future developers to build more devices for purposes as yet not thought of